/**
 * @file declaration.c
 * @author StudentWeis - studentweis@gmail.com
 * @brief 学习 C 语言的声明
 * @version 0.1
 * @date 2021-12-26
 *
 * @copyright Copyright (c) 2021
 *
 */

#include <stdio.h>

// 正常的声明和引用
static int intsize = sizeof(intsize);
// 不兼容
// double intsize()
// {
//     printf("\r\n");
// }
// 重载加双重定义
static struct intsize
{
    int intsize;
    char *name;
} overload = {10, "test"};


void main()
{
    printf("世界，你好\r\n");
    printf("intsize: %d.\r\n", intsize);
    printf("overload intsize: %d.\r\n", overload.intsize);
    // printf("overload intsize: %d.\r\n", overload.intsize);

    // 标签允许提前引用
    int test = 1;
    if (test)
    {
        printf("Goto!\r\n");
        goto recover;
    }
    test = 1;
recover:
    test = 0;
    printf("test: %d.\r\n", test);
}